package cn.edu.java.stream.functionalinterface;


@java.lang.FunctionalInterface
interface MyFunction {
    int calculate(int a, int b);
}


public class FunctionalInterfaceDemo {

    public static int sum(int a, int b) {
        return a + b;
    }

    public static void main(String[] args) {
        // new 创建函数式接口变量
        MyFunction function1 = new MyFunction() {
            @Override
            public int calculate(int a, int b) {
                return a + b;
            }
        };

        // 使用Lambda表达式创建函数式接口变量
        MyFunction function2 = (a, b) -> a + b;

        // 使用方法引用创建函数式接口变量
        MyFunction function3 = FunctionalInterfaceDemo::sum;  // ::运算符用于创建 sum 方法的方法引用。


        System.out.println("Result: " + function1.calculate(5, 3));
        System.out.println("Result: " + function2.calculate(5, 3));
        System.out.println("Result: " + function3.calculate(5, 3));
    }
}
